1. Field of the Invention
Aspects of the present invention relate to a method of extracting feature points from a digital image, and more particularly, to a method of effectively extracting feature points from a digital image in a multiprocessor system.
2. Description of the Related Art
Feature points of a digital image are points that represent a feature of the digital image distinguishable from other points. Generally, the feature points are disposed at a border or apex of an object. In addition, thousands of feature points may be extracted from the digital image, though the number of feature points can vary according to a size or content of the digital image.
Extracting feature points is an important operation in an image processing or computer vision method, as the feature points are used for image matching. The image matching is an operation of detecting corresponding portions from two images of the same object by using the feature points and may be applied in various methods (such as object/scene recognition, 3D structure calculation, stereo matching, motion tracking, panorama image generation, etc.).
FIG. 1 is a flowchart illustrating operations of generating a panorama image using feature points of images. Referring to FIG. 1, in operation 110, feature points are extracted from two or more images. Then, by comparing the feature points extracted from the images with each other, corresponding feature points are detected in operation 120. On the basis of the corresponding feature points, overlapping portions of the images are connected to each other in operation 130. A blending operation is performed on the connected portions of the images in operation 140. When images having different shades and exposures are connected (operation 130), a boundary between the overlapping images is clearly shown. Therefore, the blending operation (operation 140) is performed to enable the boundary of the connected portions to be natural.
As described above, since the feature points are disposed at the boundary, apices, etc., of objects in images, when scales or viewpoints of images are different, the feature points are easily changed even in images of the same object.
A scale invariant feature transform (SIFT) algorithm is conventionally used to extract feature points. Feature points extracted by the SIFT algorithm generally have good characteristics in that the feature points are constant to scales of images, rotations, deteriorations, 3D viewpoint changes, etc.
FIG. 2 is a flowchart illustrating a method of extracting feature points using the SIFT algorithm. Referring to FIG. 2, a blurring operation is performed on a digital image by levels using a Gaussian filter in operation 210. Here, when a scale of the image is changed, the blurring operation is repeated.
In operation 220, a difference of Gaussian (DoG) between images blurred by levels at the same scale is calculated. In operation 230, feature points are selected according to a predetermined standard on the basis of the calculated DoG. In operation 240, gradients of all pixels in the original image are calculated to generate a gradient map. In operation 250, descriptors of the feature points selected in operation 230 are calculated by using the gradient map. In operation 260, final feature point data is generated. The feature point data includes coordinates of the feature point and a descriptor of a corresponding feature point. A detailed description of the SIFT algorithm is disclosed in a published document such as U.S. Pat. No. 6,711,293, so that a detailed description thereof is omitted.
As described above, though the SIFT algorithm has excellent characteristics, there is a problem in that the SIFT algorithm cannot easily be applied in a real-time application. This is because an operation of generating the feature point data of a single image takes several to tens of seconds according to a size or content of the image.